$(function() {
	comsumeSms();
});

function comsumeSms() {
	$('#button').unbind('click');
	$('#button').bind('click', function() {
		var reg = /^(13[0-9]|14[57]|15[0-35-9]|17[0135678]|18[0-9])[0-9]{8}$/;
		var payAmountReg=/^(-)?(([1-9]{1}\d*)|([0]{1}))(\.(\d){1,2})?$/;
		var digitReg = /^[0-9]+$/;
		var merKeyReg = /^[A-Za-z0-9]+$/;
		var phone = $('#phone').val();
		var platformCuId = $('#platformCuId').val();
		var creditCard = $('#creditCard').val();
		var payAmount= $('#payAmount').val();
		var merKey = $('#merKey').val();
		if (!reg.test(phone)) {
			alertMsg('请输入正确的手机号码!');
			return;
		}
		if (!digitReg.test(platformCuId)) {
			alertMsg('请输入正确的商户号!');
			return;
		}
		if(!digitReg.test(creditCard)){
			alertMsg('请输入正确的卡号!');
			return;
		}
		if(!payAmountReg.test(payAmount)){
			alertMsg('请输入正确的支付金额!');
			return;
		}
		if(!merKeyReg.test(merKey)){
			alertMsg('请输入正确的merKey');
			return;
		}
		var params = {
				phone:phone,
				payeeId:platformCuId,
				creditCard:creditCard,
				merKey:merKey
		};
		var reqUrl = '../sms/sendComsumeSMS';
		$.ajax({
			url: reqUrl,
			type: 'POST',
			//同步执行
			async:false,
			data: params,
			dataType: 'json',
			success: function(data) {
				$('#result').text(JSON.stringify(data));
			},
			error: function(data) {
				alertMsg("未知错误");
			}
		});


	});
}

function alertMsg(msg){
	var params = {
	    container : {
		    content :msg
		  },
		autoClose : 1500
	};
	easyDialog.open(params);
}

function checkBankNo(t_bankno) {
	var bankno = $.trim(t_bankno);
	if (bankno == "") {
		alertMsg('请输入正确的银行卡号!');
		return false;
	}
	if (bankno.length < 16 || bankno.length > 19) {
		alertMsg('银行卡号长度必须在16到19之间!');
		return false;
	}
	var num = /^\d*$/; //全数字
	if (!num.exec(bankno)) {
		alertMsg('银行卡号必须全为数字!');
		return false;
	}
	//开头6位
	var strBin = "10,18,30,35,37,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,58,60,62,65,68,69,84,87,88,94,95,98,99";
	if (strBin.indexOf(bankno.substring(0, 2)) == -1) {
		alertMsg('银行卡号开头6位不符合规范!');
		return false;
	}
	//Luhm校验（新）   
	if (!luhmCheck(bankno)){
		alertMsg('请输入正确的银行卡号!');
		return false;
	}
	return true;
}

//Luhm校验规则：16位银行卡号（19位通用）:
//1.将未带校验位的 15（或18）位卡号从右依次编号 1 到 15（18），位于奇数位号上的数字乘以 2。
//2.将奇位乘积的个十位全部相加，再加上所有偶数位上的数字。
//3.将加法和加上校验位能被 10 整除。
function luhmCheck(bankno) {
	var lastNum = bankno.substr(bankno.length - 1, 1);//取出最后一位（与luhm进行比较）  

	var first15Num = bankno.substr(0, bankno.length - 1);//前15或18位  
	var newArr = new Array();
	for (var i = first15Num.length - 1; i > -1; i--) { //前15或18位倒序存进数组  
		newArr.push(first15Num.substr(i, 1));
	}
	var arrJiShu = new Array(); //奇数位*2的积 <9  
	var arrJiShu2 = new Array(); //奇数位*2的积 >9  

	var arrOuShu = new Array(); //偶数位数组  
	for (var j = 0; j < newArr.length; j++) {
		if ((j + 1) % 2 == 1) {//奇数位  
			if (parseInt(newArr[j]) * 2 < 9) {
				arrJiShu.push(parseInt(newArr[j]) * 2);
			} else {
				arrJiShu2.push(parseInt(newArr[j]) * 2);
			}
		} else {//偶数位 
			arrOuShu.push(newArr[j]);
		}
	}
	var jishu_child1 = new Array();//奇数位*2 >9 的分割之后的数组个位数  
	var jishu_child2 = new Array();//奇数位*2 >9 的分割之后的数组十位数  
	for (var h = 0; h < arrJiShu2.length; h++) {
		jishu_child1.push(parseInt(arrJiShu2[h]) % 10);
		jishu_child2.push(parseInt(arrJiShu2[h]) / 10);
	}

	var sumJiShu = 0; //奇数位*2 < 9 的数组之和  
	var sumOuShu = 0; //偶数位数组之和  
	var sumJiShuChild1 = 0; //奇数位*2 >9 的分割之后的数组个位数之和  
	var sumJiShuChild2 = 0; //奇数位*2 >9 的分割之后的数组十位数之和  
	var sumTotal = 0;
	for (var m = 0; m < arrJiShu.length; m++) {
		sumJiShu = sumJiShu + parseInt(arrJiShu[m]);
	}

	for (var n = 0; n < arrOuShu.length; n++) {
		sumOuShu = sumOuShu + parseInt(arrOuShu[n]);
	}

	for (var p = 0; p < jishu_child1.length; p++) {
		sumJiShuChild1 = sumJiShuChild1 + parseInt(jishu_child1[p]);
		sumJiShuChild2 = sumJiShuChild2 + parseInt(jishu_child2[p]);
	}
	//计算总和  
	sumTotal = parseInt(sumJiShu) + parseInt(sumOuShu)
			+ parseInt(sumJiShuChild1) + parseInt(sumJiShuChild2);

	//计算Luhm值  
	var k = parseInt(sumTotal) % 10 == 0 ? 10 : parseInt(sumTotal) % 10;
	var luhm = 10 - k;
	if (lastNum == luhm) {
		return true;
	} else {
		return false;
	}
}